In multiprocessor systems, task-allocation techniques known as load balancing are traditionally used to distribute workload across multiple processors in an attempt to evenly allocate tasks or to achieve optimal resource utilization. Load balancing typically takes into account factors such as the reported load of a given processor, response times, up/down status, or how much traffic it has recently been assigned. High-performance systems may use multiple layers of load balancing.
It is known that power consumption in CMOS circuits is proportional to the product of the frequency and the square of the supply voltage. In order to conserve power, power management techniques known as Dynamic Voltage Scaling (DVS) or Dynamic Voltage and Frequency Scaling (DVFS) have been developed to modulate the clock frequency and/or the supply voltage of the processors in a multiprocessor based system. Typically, several discrete operating points (OPP) of operating frequencies and supply voltages are available under DVFS techniques rather than a continuous continuum of frequency and voltage combinations. It is desirable for a DVFS-capable system to operate at as low OPP as possible unless the processing speed is too slow so that the tasks running in the system violate their deadlines.
Supporting separate DVFS feature for individual processor in a multiprocessors system is costly as a separate power supply must be supplied to each processor. For cost effective design, it is typical to use a shared power supply and clock for a group of processors. In this situation, load balancing among the processors sharing the same OPP is desirable as the OPP will be determined based on the maximum OPP requirement of the processors.
Lower utilization or more balanced processor utilization through load balancing does not necessarily mean a lower OPP in DVFS-capable systems. Task deadlines play an important role in determining the OPP while load-balancing however only concerns the number of computation cycles of the tasks. Therefore, conventional load-balancing task allocation may result in un-balanced OPP requirements of multiple processors in a multiprocessing environment.